Wichtig !!! | N E U E S ... | Inhalt | Hotline | Stichwortverzeichnis |
Kapitel 5-2
Der Befehlssatz: ABS - CINT
ABS | |
Typ: | Funktion |
Syntax: | ABS(<num.Ausdruck>) |
Erklärung: | ABS berechnet den Absolutbetrag des numerischen Ausdrucks. Negative Werte erhalten so ein positives Vorzeichen, während positive Werte unverändert bleiben. |
Beispiel: |
PRINT A PRINT ABS(A) PRINT ABS(A+3.2)+3.2 |
Ergebnis: |
5.2 5.2 |
siehe auch: |
AES | |
Erklärung: | Hat in Omikron Basic 6 keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. |
AND | |
Typ: | Operator |
Syntax: | <num.Ausdruck>AND<num.Ausdruck> |
Erklärung | Die beiden Ausdrücke werden bitweise logisch und verknüpft. |
Beispiel: |
IF 1<2 AND 2<3 THEN PRINT "Hab' ich's doch gewußt!" IF 1<4 AND 2=4 THEN PRINT "Das ist aber falsch!!!" |
Ergebnis: |
Hab' ich's doch gewußt! |
siehe auch | OR NOR NAND XOR IMP EQV |
ARCCOS | |
Typ: | Funktion |
Syntax: | ARCCOS(<num.Ausdruck>) |
Erklärung: | Berechnet den Arcus-Cosinus des numerischen Ausdrucks. Der numerische Ausdruck muß einen Wert zwischen -1 und 1 haben. Das Ergebnis ist abhängig vom eingestellten Winkelmodus. |
Beispiel: |
DEG PRINT ARCCOS(1) |
Ergebnis: |
0 |
siehe auch: | DEG RAD |
ARCCOT | |
Typ: | Funktion |
Syntax: | ARCCOT(<num.Ausdruck>) |
Erklärung: | Berechnet den Arcus-Cotangens des numerischen Ausdrucks. Das Ergebnis ist abhängig vom eingestellten Winkelmodus (siehe DEG, RAD). |
Beispiel: |
DEG PRINT ARCCOT(1) |
Ergebnis: |
45 |
siehe auch: | DEG RAD |
ARCOTH | |
Typ: | Funktion |
Syntax: | ARCOTH(<num.Ausdruck>) |
Erklärung | Berechnet den Area-Cotangens-Hyperbolicus des numerischen Ausdrucks. Der numerische Wert muß außerhalb des Bereichs von -1 bis 1 liegen. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: |
ARCSIN | |
Typ: | Funktion |
Syntax: | ARCSIN(<num.Ausdruck>) |
Erklärung | Berechnet den Arcus-Sinus des numerischen Ausdrucks. Der numerische Ausdruck muß einen Wert zwischen -1 und 1 haben. Das Ergebnis ist abhängig vom eingestellten Winkelmodus. (siehe auch DEG , RAD) |
Beispiel: |
DEG PRINT ARCSIN(0.5) |
Ergebnis: |
30 |
siehe auch: |
ARCTAN | |
Typ: | Funktion |
Syntax: | ARCTAN(<num.Ausdruck>) |
Erklärung | Berechnet den Arcus-Tangens des numerischen Ausdrucks. ARCTAN ist identisch mit ATN. Das Ergebnis ist abhängig vom eingestellten Winkelmodus . |
Beispiel: |
DEG PRINT ARCTAN(1) |
Ergebnis: |
45 |
siehe auch: |
ARSINH | |
Typ: | Funktion |
Syntax: | ARSINH(<num.Ausdruck>) |
Erklärung: | Berechnet den Area-Sinus-Hyperbolicus des numerischen Ausdrucks. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: |
ARTANH | |
Typ: | Funktion |
Syntax: | ARTANH(<num.Ausdruck>) |
Erklärung | Berechnet den Area-Tangens-Hyperbolicus des numerischen Ausdrucks. Der numerische Ausdruck muß einen Wert zwischen -1 und 1 haben. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: |
AS | |
Erklärung: | siehe NAME...AS |
ASC | |
Typ: | Funktion |
Syntax: | ASC(<String-Ausdruck>) |
Erklärung: | Ermittelt den ASCII-Wert des ersten Zeichens vom String-Ausdruck. ASC ist die Umkehrfunktion von CHR$.
Siehe auch die ASCII-Tabelle im Anhang. Achtung: ASC(A$) führt zu der Meldung "Unerlaubter Funktionsaufruf", wenn A$ ein Leerstring ist. |
Beispiel: |
PRINT ASC( CHR$(24)) |
Ergebnis: |
24 |
siehe auch | CHR$ |
ATN | |
Typ: | Funktion |
Syntax: | ATN(<num.Ausdruck>) |
Erklärung: | Berechnet den Arcus-Tangens des numerischen Ausdrucks. ATN ist identisch mit ARCTAN. Das Ergebnis ist abhängig vom eingestellten Winkelmodus (siehe DEG, RAD). |
Beispiel: |
DEG PRINT ATN(1) |
Ergebnis: |
45 |
siehe auch: |
BACKUP | |
Typ: | Befehl |
Syntax: | BACKUP(<String-Ausdruck>) BACKUP(<Dateiname>) |
Erklärung: | Erstellt von der Datei eine Sicherheitskopie. Die Sicherheitskopie erhält die Extension ".BAK" und
wird im selben Ordner abgelegt. In <Dateiname> muß ein FileSpecificationRecord
übergeben werden, wie man ihn z.B. von FILESELECT oder FN
Get_Fsspec$ aus der ExtensionsLibrary zurückerhält. Jokerzeichen im Dateinamen sind nicht zugelassen. Kann die Datei nicht gefunden werden, wird der Befehl abgebrochen und eine Fehlermeldung ausgegeben, wenn Error_Messages aktiviert ist. |
Beispiel: |
|
Ergebnis: |
|
siehe auch | COPY |
BIN$ | |
Typ: | Funktion |
Syntax: | BIN$(<num.Ausdruck>) |
Erklärung: | Wandelt den numerischen Ausdruck in eine Zeichenkette um, die den gerundeten Wert des Ausdrucks als Binärzahl darstellt. Der numerische Ausdruck wird zuvor immer in das Long-Integer-Format gewandelt. Ein betragsmäßig zu großer Wert erzeugt eine "Integer Überlauf" Fehlermeldung, wenn zuvor die FPU-Exceptions mit dem Compilersteuerwort "FPUEXON" eingeschaltet wurden. |
Beispiel: |
PRINT BIN$(24) PRINT BIN$(1E+10) |
Ergebnis: |
%11000 Integer Überlauf in Zeile Nr: 2 |
siehe auch: | OCT$ HEX$ STR$ VAL |
BIOS | |
Erklärung: | Hat in Omikron Basic 6 keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. |
BIT | |
Typ: | Funktion |
Syntax: | BIT(<num.Ausdruck>,<num.Ausdruck>) BIT(<Bitnummer>,<Wert>) |
Erklärung: | Der gerundete Wert wird in eine 32-stellige Binärzahl gewandelt. Ein betragsmäßig zu großer
Wert erzeugt eine "Integer Überlauf" Fehlermeldung, wenn die FPU-Exceptions mit dem Compilersteuerwort
"FPUEXON" eingeschaltet wurden. Die Funktion ergibt -1, wenn
das von rechts gezählte Bit der Binärzahl gesetzt ist, andernfalls 0. Das niederwertigste Bit hat die
Nummer 0. Das höchstwertigste Bit hat die Nummer 31 und stellt das Vorzeichen dar. Ein falsche Bitnummer erzeugt die Fehlermeldung "Unerlaubter Funktionsaufruf", wenn zuvor mit COMPILER "RCON" die Bereichsüberwachung eingeschaltet wurde. |
Beispiel: |
PRINT BIT(2,1) PRINT BIT(31,-1) PRINT BIT(12,-1) |
Ergebnis: |
0 -1 -1 |
siehe auch: | BIT als Befehl |
BIT | |
Typ: | Befehl |
Syntax: | BIT(<num.Ausdruck>,{<Integer-Variable>|(<num.Ausdruck>)}) =<num.Ausdruck>
BIT(<Bitnummer>,{<Integer-Variable>|(<Speicheradresse>)}=<Bitwert>) |
Erklärung: | Weist, wenn <Bitwert> null ist, einem einzelnen Bit den Wert null zu, andernfalls den Wert eins. Das Bit
wird durch <Bitnummer> angegeben. Das niederwertigste Bit hat die Bitnummer null. Es können entweder
Bits von Integer-Variablen oder vom Speicher geändert werden. Wichtig: Bei Änderungen des Speichers erfolgt der Zugriff immer byteweise, d.h. die höchste Bitnummer ist 7. Beim Modifizieren von Integer-Variablen hingegen sind Bitnummern bis 31 erlaubt. Ein falsche Bitnummer erzeugt die Fehlermeldung "Unerlaubter Funktionsaufruf", wenn zuvor mit COMPILER "RCON"die Bereichsüberwachung eingeschaltet wurde. |
Beispiel: |
PRINT PEEK(Adresse) BIT (2,(Adresse))=1 PRINT PEEK(Adresse) A=19 BIT (2,A)=0 PRINT A |
Ergebnis: |
4 17 |
siehe auch: |
BITBLT | |
Typ: | Befehl |
Syntax: | BITBLT<num.Ausdruck>[,<num.Ausdruck>,<num.Ausdruck>,<num. Ausdruck>] TO <num.Ausdruck>[,<num.Ausdruck>,<num.
Ausdruck>,<num.Ausdruck>][;<num.Ausdruck>] BITBLT <num.Ausdruck>TO <num.Ausdruck>,COLOR <num.Ausdruck> 1: BITBLT <X1>,<Y1>,<Breite1>,<Höhe1> TO <X2>,<Y2>,<Breite2>, <Höhe2>[;<Modus>] 2: BITBLT <X>,<Y>,<Breite>,<Höhe>TO <Speicheradresse>[;<Modus>] 3: BITBLT <Speicheradresse>TO <X>,<Y>,<Breite>,<Höhe>[;<Modus>] 4: BITBLT <Speicheradresse1>TO <Speicheradresse2>,COLOR <Farbe> |
Erklärung: | Kopiert einen rechteckigen Bildschirmausschnitt je nach Syntax: 1: von Bildschirm nach Bildschirm 2: von Bildschirm nach Speicher 3: von Speicher nach Bildschirm 4: von Speicher nach Speicher Quell- und Zielrechteck können unterschiedliche Größe haben. Das Quellbild wird durch den Befehl so verändert, daß es genau in das Zielrechteck passt. Man kann den BITBLT-Befehl also auch dazu benutzen, Bilder zu vergrößern, zu verkleinern oder zu verzerren. Bei Syntax 1 bis 3 ist zusätzlich die Angabe eines Modus möglich, der eine punktweise Verknüpfung der Bildinformationen von Quelle und Ziel ermöglicht: MODUS 0: Ziel = Quelle MODUS 1: Ziel = Quelle UND Ziel MODUS 2: Ziel = NOT(Quelle XOR Ziel) MODUS 3: Ziel = NOT Quelle OR Ziel MODUS 4: Ziel = NOT Quelle MODUS 5: Ziel = NOT Quelle UND Ziel MODUS 6: Ziel = Quelle XOR Ziel MODUS 7: Ziel = Quelle OR Ziel MODUS 32: Ziel = (Quelle + Ziel)\2 MODUS 33: Ziel = MIN($FFFF,Quelle + Ziel) MODUS 34: Ziel = (Quelle+Ziel) MOD $FFFF MODUS 35: Ziel = MAX(0,Quelle - Ziel) MODUS 36: Ziel = Quelle, falls Quelle nicht weiß (Transparentmodus) MODUS 37: Ziel = MAX(Quelle,Ziel) MODUS 38: Ziel = (Quelle - Ziel + $FFFF) MOD $FFFF MODUS 39: Ziel = MIN (Quelle,Ziel) Quelle und Ziel stehen jeweils für einen 6 Byte RGB-Record wobei R=Rot,G=Grün und B=Blau Werte zwischen 0 und $FFFF annehmen können. Wird die Angabe <Modus> weggelassen, so wird nach 'MODUS 0' verfahren. Bit-Blits in den Bildschirm berücksichtigen ein gesetztes Grafikfenster (siehe CLIP). In der Syntax BITBLT Adr1 TO Adr2, COLOR P gibt P an, wieviele Farbebenen das Zielbild haben soll. Sie können diesen Befehl also benutzen, um die Farbtiefe eines Bildes zu verändern. Der Speicherplatzbedarf für einen BITBLT in den Speicher läßt sich folgendermaßen berechnen: Speicherbedarf = 6+((Breite+15) * Höhe * Farbebenen) SHR 3 Die drei Worte Vorspann setzen sich so zusammen: 1. Anzahl der Farbebenen 2. Breite in Pixel 3. Höhe in Pixel |
Beispiel: |
PELLIPSE 50,50,30,20 BITBLT 25,20,50,50 TO Bildspeicher WAIT .5 CLS BITBLT Bildspeicher TO 20,20,50,50 WAIT .5 BITBLT 20,20,50,50 TO 20,30,50,50,6 WAIT .5 PCIRCLE 45,55,8 |
Ergebnis: |
|
siehe auch: | BLOAD BSAVE |
BLOAD | |
Typ: | Befehl |
Syntax: | BLOAD <String-Ausdruck>[,<num.Ausdruck>] BLOAD <Dateiname>[,<Startadresse>] |
Erklärung: | Die genannte Datei wird ab der Startadresse in den Speicher geladen. Ist die Datei länger als der reservierte Speicherbereich, so wird nur soviel geladen, wie hineinpaßt. Fehlt dieser Ausdruck, so wird in den Bildschirm (logische Bildschirmadresse) bzw. in das oberste Omikron Basic Ausgabefenster geladen, wenn eines geöffnet ist. Dabei werden Breite, Höhe und Farbtiefe automatisch angepasst. Dazu muß die Datei im PICT-Format vorliegen, wie es z.B. automatisch von BSAVE angelegt wird. Auch PICT-Dateien, die mit anderen Programmen erzeugt wurden, können mit BLOAD geladen werden. |
Beispiel: |
BLOAD FN Get_Fsspec$(0,0,"BEISPIEL.DAT"),Speicher |
Ergebnis: |
|
siehe auch: | BSAVE BITBLT |
BOX | |
Typ: | Befehl |
Syntax: | BOX <num.Ausdruck>,<num.Ausdruck>{ TO <num.Ausdruck>,<num. Ausdruck>|,<num.Ausdruck>,<num.Ausdruck>}
BOX <X>,<Y>{ TO <X2>,<Y2>|<Breite>,<Höhe>} |
Erklärung: | Zeichnet ein nicht gefülltes Rechteck auf den Bildschirm. Dabei sind entweder zwei gegenüberliegende Ecken anzugeben, oder eine Ecke, Breite und Höhe des Rechtecks. Farbe, Linienstil und -breite können über LINE COLOR, LINE STYLE bzw. LINE WIDTH bestimmt werden. Ist mittels CLIP ein Bildfenster definiert, wird außerhalb dieses Bereichs nicht gezeichnet. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: | PBOX PRBOX RBOX |
BRK | |
Typ: | Befehl |
Syntax: | BRK |
Erklärung: | Dieser Befehl dient ausschließlich zur Fehlersuche in compilierten Programmen. Er löst im Compilat einen Sprung in den Debugger aus. Das geht natürlich nur, wenn zuvor ein Debugger gestartet wurde, sonst stürzt der Mac mit der Meldung "Unimplemented Trap" ab. Mit diesem Befehl ist es möglich, ein Programm an einer bestimmten Stelle zu unterbrechen, um so auf Objectcode-Ebene die Fehlersuche mit einem Debugger zu beginnen. |
Beispiel: | |
Ergebnis: | |
siehe auch |
BSAVE | |
Typ: | Befehl |
Syntax: | BSAVE <String-Ausdruck>[,<num.Ausdruck>,<num.Ausdruck>] BSAVE <Dateiname>[,<Startadresse>,<Länge>] |
Erklärung: | Speichert den ab <Startadresse> liegenden Speicherbereich unter <Dateiname> ab. Fehlen <Startadresse> und <Länge>, so wird der Bildschirm bzw. das oberste Omikron Basic Ausgabefenster abgespeichert. Dabei erfolgt die Speicherung im PICT-Format, wodurch es möglich wird, das Bild mit BLOAD wieder in einen beliebigen Grafics-Port zu laden oder mit einem anderen Programm weiterzubearbeiten. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: | BITBLT BLOAD |
CALL | |
Typ: | Befehl |
Syntax: | CALL <num.Variable>[(][L ]<num.Ausdruck>][[, [L ]<num.Ausdruck>]])] |
Erklärung: | Ein Maschinensprache-Unterprogramm wird aufgerufen. Die Startadresse ist durch die numerische Variable gegeben.
Die folgenden Ausdrücke werden in umgekehrter Reihenfolge auf dem Stack übergeben, d.h. der erste Parameter
befindet sich zu unterst auf dem Stack also bei "0,R31". Den Ausdrücken darf ein "L" voran
gestellt werden, um den betreffenden Parameter als Long-Integer zu übergeben. Ansonsten wird immer ein Short-Integer
übergeben. Es dürfen nur die von Apple als 'volatile' deklarierten Register verändert werden. Im einzelnen sind dies: R0,R3-R12 FPR0-FPR13 CR0,CR1,CR5-CR7 R31 zeigt auf den dynamischen Stack, auf dem sich die übergebenen Parameter befinden. Das Programm muß mit 'Blr' beendet werden. Wird das Linkregister verändert, so ist darauf zu achten, daß es vor der Rückkehr wieder restauriert wird. Nach Beendigung des Maschinenprogramms kann der Inhalt von R3 mit RESERVED(0) geholt werden. Fehler, die Ihr Maschinenprogramm verursacht, können vom Omikron Basic nicht abgefangen werden. Es empfiehlt sich daher, in der Testphase zuvor einen geeigneten Debugger zu starten. |
Beispiel: |
CALL Decode ( L &Test$, 1 ) ' Zeiger auf Test$ und "1" Übergeben PRINT Test$ Das Maschinenprogramm: (Wurde mit der AssemblerLibrary für Omikron Basic 6 erstellt) Lwz R6,0,R31:'Zeiger auf String holen Label "loop" |
Ergebnis: |
|
siehe auch: |
CASE | |
Typ: | Befehl |
Syntax: | CASE <Ausdruck>[TO <Ausdruck>][[,<Ausdruck> [TO <Ausdruck>]]] |
Erklärung: | CASE leitet innerhalb einer SELECT ... CASE Anweisung einen Teilzweig ein. Dieser Programmzweig wird dann ausgeführt, wenn eine der genannten Möglichkeiten auf die bei SELECT genannte Variable zutrifft. Mehrere Möglichkeiten werden einfach mit Kommata getrennt aufgezählt. Auch Bereiche sind mit TO möglich. Bei Strings werden nur die ersten 4 Byte ausgewertet. |
Beispiel: | |
Ergebnis: | |
siehe auch | SELECT DEFAULT OTHERWISE |
CDBL | |
Typ: | Funktion |
Syntax: | CDBL(<num.Ausdruck>) |
Erklärung: | Wandelt einen beliebigen numerischen Ausdruck in doppelt genaues Fließkomma-Format um. |
Beispiel: |
B!=3 PRINT CDBL(A!/B!) PRINT CDBL(A!)/CDBL(B!) |
Ergebnis: |
0.333333333333333 |
siehe auch: | CINT CINTL CSNG |
CHAIN | |
Erklärung: | Hat in Omikron Basic 6 keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. |
CHDIR | |
Typ: | Befehl |
Syntax: | CHDIR <String-Ausdruck> |
Erklärung: | Legt den Standardpfad auf den in <String-Ausdruck> genannten Pfad fest. Dem Befehl muß ein FileSpecificationRecord übergeben werden, wie man ihn z.B. von FILESELECT oder FN Get_Fsspec$ aus der ExtensionsLibrary zurückerhält. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: |
CHR$ | |
Typ: | Funktion |
Syntax: | CHR$(<num.Ausdruck>) |
Erklärung: | Erzeugt einen ein Zeichen langen String entsprechend der ASCII-Tabelle. CHR$ ist die Umkehrfunktion zu ASC. Siehe auch die ASCII-Tabelle im Anhang. |
Beispiel: |
PRINT CHR$(80); CHR$(76) |
Ergebnis: |
|
siehe auch | ASC |
CINT | |
Typ: | Funktion |
Syntax: | CINT(<num.Ausdruck>) |
Erklärung: | Wandelt einen beliebigen numerischen Wert in Short-Integer-Format (ganze Zahlen von -32768 bis +32767) um. Der Definitionsbereich der Funktion umfaßt natürlich gerade den Short-Integer-Bereich. Andere Werte führen zu der Fehlermeldung "Integer Überlauf", wenn zuvor mit COMPILER "RCON" die Bereichsüberwachung eingeschaltet wurde. |
Beispiel: |
B=3 PRINT CINT(A/B) PRINT CINT(A)/CINT(B) PRINT CINT(40000) |
Ergebnis: |
0.333333333333333 Interger Überlauf in Zeile Nr: 4 |
siehe auch: | CINTL CSNG CDBL |
& bis @
blättern
CINTL - DEFAULT